home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / PRGMANIA / INITFILE / TEST_INF.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-12-25  |  5.8 KB  |  167 lines

  1. /*************************************************************************
  2.  * Test_Inf - (c) 1996 Philippe Castella                                 *
  3.  * Programme de test de la librarie InitFile                             *
  4.  *************************************************************************/
  5.  
  6. /*************************************************************************
  7.  * Fichiers à inclure                                                    *
  8.  *************************************************************************/
  9. #include <stdio.h>
  10. #include <InitFile.h>
  11.  
  12. /*-----------------------------------------------------------------------*
  13.  * Ce programme n'est absolument pas optimisé (ca se voit d'ailleur !)   *
  14.  * Il permet de tester mes fonctions de gestion de fichiers paramètres.  *
  15.  *-----------------------------------------------------------------------*/
  16. void main (void)
  17. {
  18.     InitFile *fic_ini;
  19.     InfSection *sect;
  20.     InfVar *var;
  21.     short b;
  22.     long entier;
  23.     char chaine[128], buf[8];
  24.     
  25.     /* Création d'un fichier .inf */
  26.     printf ("> Création / ouverture du fichier .inf\n> Ca dépend s'il existe déjà ou non !...\n");
  27.     fic_ini = InfCreate ("test_inf.inf");
  28.     printf ("> Nom fichier : <%s>\n", fic_ini->FileName);
  29.  
  30.     printf ("Afficher contenu du fichier Inf (rien s'il n'existe pas)\n");
  31.     sect = fic_ini->FirstSection;
  32.     while (sect != (InfSection *)0)
  33.     {
  34.         printf ("Section = %s\n", sect->SectionName);
  35.         var = sect->FirstVar;
  36.         while (var != (InfVar *)0)
  37.         {
  38.             printf ("  Var = %s, Val = %s\n", var->VarName, var->VarVal);
  39.             var = var->NextVar;
  40.         }
  41.         sect = sect->NextSection;
  42.     }
  43.     getchar();
  44.     
  45.     /* Lecture du contenu du fichier */
  46.     puts ("> Si le fichier existe déjà et que les variables existent aussi");
  47.     puts ("> les fonctions de lectures retourneront les valeurs inscrites");
  48.     puts ("> dans le fichier .inf");
  49.     puts ("> Sinon, elles retourneront les valeurs par défaut !");
  50.     
  51.     /* Lire variable Booléenne */
  52.     puts ("> Lire variable booléenne");
  53.     InfReadBool (fic_ini, "Section Générale", "Variable Booléenne", FALSE, &b);
  54.     printf ("Booléen = <%d>\n", b);
  55.  
  56.     /* Lire variable Entière */
  57.     puts ("> Lire variable entière");
  58.     InfReadInteger(fic_ini, "Section Générale", "Variable Entière", 2000L, &entier);
  59.     ltoa(entier, buf, 10);
  60.     printf ("Entier = <%s>\n", buf);
  61.  
  62.     /* Lire variable Chaine */
  63.     puts ("> Lire variable chaine de caractères");
  64.     InfReadString(fic_ini, "Message", "Un Message", "Coucou !", chaine);
  65.     printf ("Chaine = <%s>\n", chaine);
  66.     getchar ();
  67.  
  68.     /* Ecriture des variables */
  69.     puts ("> Ecriture du contenu des variables = ");
  70.     puts ("> 1 - Création si elles n'existent pas");
  71.     puts ("> 2 - Mise à jour si elles existent");
  72.  
  73.   /* Une variable booléenne */
  74.     printf ("> Ajouter variable booléenne...\n");
  75.     InfWriteBool (&fic_ini, "Section Générale", "Variable Booléenne", TRUE);
  76.     InfWriteBool (&fic_ini, "Section Générale", "Variable Booléenne 2", TRUE);
  77.     InfWriteBool (&fic_ini, "Section Spéciale", "Variable Booléenne 3", TRUE);
  78.     
  79.     /* Une variable entière */
  80.     printf ("> Ajouter variable entière...\n");
  81.     InfWriteInteger (&fic_ini, "Section Générale", "Variable Entière", 1996);
  82.         
  83.     /* Une variable chaine de caractères */
  84.     printf ("> Ajouter variable chaine de caractères...\n");
  85.     InfWriteString  (&fic_ini, "Message", "Un Message", "Joyeux Noel et Bonne Année 1997");
  86.     getchar();
  87.     
  88.     printf ("Afficher contenu du fichier Inf\n");
  89.     sect = fic_ini->FirstSection;
  90.     while (sect != (InfSection *)0)
  91.     {
  92.         printf ("Section = %s\n", sect->SectionName);
  93.         var = sect->FirstVar;
  94.         while (var != (InfVar *)0)
  95.         {
  96.             printf ("  Var = %s, Val = %s\n", var->VarName, var->VarVal);
  97.             var = var->NextVar;
  98.         }
  99.         sect = sect->NextSection;
  100.     }
  101.     getchar();
  102.  
  103.     /* Test des fonctions de suppression */
  104.     puts ("Suppression d'une variable et d'une section...");
  105.     InfDeleteVar (&fic_ini, "Section Générale", "Variable Booléenne 2");
  106.     InfDeleteSection (&fic_ini, "Section Spéciale");
  107.     getchar();
  108.  
  109.     printf ("Afficher contenu du fichier Inf\n");
  110.     sect = fic_ini->FirstSection;
  111.     while (sect != (InfSection *)0)
  112.     {
  113.         printf ("Section = %s\n", sect->SectionName);
  114.         var = sect->FirstVar;
  115.         while (var != (InfVar *)0)
  116.         {
  117.             printf ("  Var = %s, Val = %s\n", var->VarName, var->VarVal);
  118.             var = var->NextVar;
  119.         }
  120.         sect = sect->NextSection;
  121.     }
  122.     getchar();
  123.  
  124.     /* Lire variable Booléenne */
  125.     puts ("> Relire variable booléenne");
  126.     InfReadBool (fic_ini, "Section Générale", "Variable Booléenne", FALSE, &b);
  127.     printf ("Booléen = <%d>\n", b);
  128.  
  129.     /* Lire variable Entière */
  130.     puts ("> Relire variable entière");
  131.     InfReadInteger(fic_ini, "Section Générale", "Variable Entière", 2000L, &entier);
  132.     ltoa(entier, buf, 10);
  133.     printf ("Entier = <%s>\n", buf);
  134.  
  135.     /* Lire variable Chaine */
  136.     puts ("> Relire variable chaine de caractères");
  137.     InfReadString(fic_ini, "Message", "Un Message", "Coucou !", chaine);
  138.     printf ("Chaine = <%s>\n", chaine);
  139.     getchar ();
  140.  
  141.     /* Ecrire fichier + libération mémoire */
  142.     printf ("> Mise à jour du fichier %s\n", fic_ini->FileName);
  143.     InfFree (fic_ini);
  144.  
  145.     /* Lire variable Booléenne */
  146.     puts ("\n> Relire variable booléenne après fermeture");
  147.     InfReadBool (fic_ini, "Section Générale", "Variable Booléenne", FALSE, &b);
  148.     printf ("Booléen = <%d> = valeur par défaut\n", b);
  149.  
  150.     /* Lire variable Entière */
  151.     puts ("> Relire variable entière après fermeture");
  152.     InfReadInteger(fic_ini, "Section Générale", "Variable Entière", 2000L, &entier);
  153.     ltoa(entier, buf, 10);
  154.     printf ("Entier = <%s> = valeur par défaut\n", buf);
  155.  
  156.     /* Lire variable Chaine */
  157.     puts ("> Relire variable chaine de caractères après fermeture");
  158.     InfReadString(fic_ini, "Message", "Un Message", "Coucou !", chaine);
  159.     printf ("Chaine = <%s> = valeur par défaut\n", chaine);
  160.     getchar ();
  161.  
  162.     printf ("> Appuyez sur une touche...");
  163.     getchar();
  164.  
  165.     exit(0);
  166. }
  167.